package com.wannengbang.storemobile.homepage.model;


import com.wannengbang.storemobile.base.DataCallBack;
import com.wannengbang.storemobile.bean.AreaListBean;
import com.wannengbang.storemobile.bean.BankAuthCodeBean;
import com.wannengbang.storemobile.bean.BankCardBean;
import com.wannengbang.storemobile.bean.BankDeposiAddressListBean;
import com.wannengbang.storemobile.bean.BankInfoBean;
import com.wannengbang.storemobile.bean.BankListBean;
import com.wannengbang.storemobile.bean.BaseResponseBean;
import com.wannengbang.storemobile.bean.BatchAddProductBean;
import com.wannengbang.storemobile.bean.BatchInStorageBean;
import com.wannengbang.storemobile.bean.BranchBrankListBean;
import com.wannengbang.storemobile.bean.CreateOrderBean;
import com.wannengbang.storemobile.bean.DeviceImgListBean;
import com.wannengbang.storemobile.bean.DeviceListBean;
import com.wannengbang.storemobile.bean.GetWxMercIdBean;
import com.wannengbang.storemobile.bean.HuaBeiOrderBean;
import com.wannengbang.storemobile.bean.IdCardBean;
import com.wannengbang.storemobile.bean.ImageBean;
import com.wannengbang.storemobile.bean.EBankIndustryListBean;
import com.wannengbang.storemobile.bean.IndustryListBean;
import com.wannengbang.storemobile.bean.IntelligentCashierBean;
import com.wannengbang.storemobile.bean.KDBAllIndustryListBean;
import com.wannengbang.storemobile.bean.LicenseInfoBean;
import com.wannengbang.storemobile.bean.LoginBean;
import com.wannengbang.storemobile.bean.MemberListBean;
import com.wannengbang.storemobile.bean.MerchantDetailsBean;
import com.wannengbang.storemobile.bean.MerchantIndustryNumberBean;
import com.wannengbang.storemobile.bean.OrderFeeBean;
import com.wannengbang.storemobile.bean.OrderListBean;
import com.wannengbang.storemobile.bean.ProductClassifyListBean;
import com.wannengbang.storemobile.bean.ProductListBean;
import com.wannengbang.storemobile.bean.PurchaseBean;
import com.wannengbang.storemobile.bean.PurchaseDetailsBean;
import com.wannengbang.storemobile.bean.PurchaseListBean;
import com.wannengbang.storemobile.bean.RechargeConfigBean;
import com.wannengbang.storemobile.bean.RechargeListBean;
import com.wannengbang.storemobile.bean.SettlementInfoBean;
import com.wannengbang.storemobile.bean.SignContractBean;
import com.wannengbang.storemobile.bean.StoreDeatilsBean;
import com.wannengbang.storemobile.bean.StoreListBean;
import com.wannengbang.storemobile.bean.StoreReceivedBean;
import com.wannengbang.storemobile.bean.SubBranchListBean;
import com.wannengbang.storemobile.bean.VersionBean;

import java.util.List;

public interface IHomePageModel {
    /**
     * 补贴收益
     */
    void requestStoreOrderIndex(int page, String pay_status, String start_time, String end_time, String start_minute, String end_minute, DataCallBack<OrderListBean> callBack);

    /**
     * 收益列表
     */
    void requestStoreReceived(String start_date, String end_date, DataCallBack<StoreReceivedBean> callBack);

    /**
     * 批量添加商品
     */
    void requestGoodsBatchAdd(List<BatchAddProductBean> itemList, DataCallBack<BaseResponseBean> callBack);

    /**
     * 批量入库
     */
    void requestGoodsInStorage(List<BatchInStorageBean> itemList, DataCallBack<BaseResponseBean> callBack);

    /**
     * 商品列表
     */
    void requestGoodsIndex(int page, String status, String store_goods_category_id, DataCallBack<ProductListBean> callBack);

    /**
     * 设备列表
     */
    void requestDeviceUnifyIndex(int page, String type, DataCallBack<DeviceListBean> callBack);

    /**
     * 创建订单
     */
    void requestStoreOrderAdd(String pay_category_id, String order_fee, String auth_code, String goods_list, DataCallBack<CreateOrderBean> callBack);

    /**
     * 支付订单
     */
    void requestStoreOrderScanCode(String pay_category_id, String order_fee, String auth_code, String goods_list, String order_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 轮询订单
     */
    void requestStoreOrderShow(String order_no, DataCallBack<CreateOrderBean> callBack);

    /**
     * 商品分类 添加
     */
    void requestStoreGoodsCategoryAdd(String name, String serial_number, DataCallBack<BaseResponseBean> callBack);

    /**
     * 商品分类 添加
     */
    void requestStoreGoodsCategoryEdit(String id, String name, String serial_number, DataCallBack<BaseResponseBean> callBack);

    /**
     * 订单统计
     */
    void requestOrderFeeCount(DataCallBack<OrderFeeBean> callBack);

    /**
     * 商品分类
     */
    void requestProductClassify(DataCallBack<ProductClassifyListBean> callBack);

    /**
     * 删除分类
     */
    void requestProductClassifyDelete(String id, DataCallBack<BaseResponseBean> callBack);

    /**
     * 上传图片
     */
    void requestUploadFile(String dir_name, String file, DataCallBack<ImageBean> callBack);

    /**
     * 删除商品
     */
    void requestStoreGoodsDelete(String id, DataCallBack<BaseResponseBean> callBack);

    /**
     * 绑定DeviceId
     */
    void requestbindDeviceId(String client_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 解绑DeviceId
     */
    void requestUnBindDeviceId(String client_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 编辑商品
     */
    void requestStoreGoodsEdit(String id, String name, String code, String store_goods_category_id, String price, String thumb, DataCallBack<BaseResponseBean> callBack);

    /**
     * 验证银行信息 发送短信
     */
    void requestVerifyBankFourFactor(String bank_name, String settle_name, String settle_mobile, String id_card, String card_no, DataCallBack<BankAuthCodeBean> callBack);

    /**
     * 验证提额
     */
    void requestUpAmount(String id, String sms_code, String valid_date, DataCallBack<BaseResponseBean> callBack);

    /**
     * 获取银行信息
     */
    void requestBankInfo(DataCallBack<BankInfoBean> callBack);

    /**
     * 创建花呗分期订单
     */
    void requestAddHuaBeiOrder(String order_fee, DataCallBack<HuaBeiOrderBean> callBack);

    /**
     * 门店查看码牌二维码
     */
    void requestDeviceImg(String type, DataCallBack<DeviceImgListBean> callBack);

    /**
     * 保存门店资料 电银
     */
    void requestEBankStoreSaveProfile(String store_no, String merchant_type, String merchant_name, String license_no, String license_full_name, String license_address, String license_start,
                                      String license_end, String license_pic,
                                      String province, String city, String area, String address, String lng, String lat,
                                      String contact_name,
                                      String legal_name, String legal_id_card_no, String legal_id_card_start, String legal_id_card_end, String bank, String branch,
                                      String branch_province, String branch_city, String bank_card_no, String holder_mobile, String unionpay, String door_pic,
                                      String bank_card_front_pic, String legal_id_card_front_pic, String legal_id_card_back_pic, String legal_id_card_hand_pic, String inside_pic, String cashier_desk_pic, String sign_pic,
                                      String mcc_code,
                                      DataCallBack<BaseResponseBean> callBack);

    /**
     * 新增门店资料 电银
     */
    void requestEBankStoreIncomeProfile(String merchant_type, String merchant_name, String license_no, String license_full_name, String license_address, String license_start, String license_end, String license_pic,
                                        String province, String city, String area, String address, String lng, String lat, String contact_name,
                                        String legal_name, String legal_id_card_no, String legal_id_card_start, String legal_id_card_end, String bank, String branch,
                                        String branch_province, String branch_city, String bank_card_no, String holder_mobile, String unionpay, String door_pic,
                                        String bank_card_front_pic, String legal_id_card_front_pic, String legal_id_card_back_pic, String legal_id_card_hand_pic, String inside_pic, String cashier_desk_pic, String sign_pic,
                                        String mcc_code,
                                        DataCallBack<BaseResponseBean> callBack);


    /**
     * 省
     */
    void requestGetProvince(DataCallBack<AreaListBean> callBack);

    /**
     * 市
     */
    void requestGetCity(int province_code, DataCallBack<AreaListBean> callBack);

    /**
     * 区
     */
    void requestGetArea(int city_code, DataCallBack<AreaListBean> callBack);


    /**
     * 银行名字
     */
    void requestGetBankName(String bank_name, DataCallBack<AreaListBean> callBack);

    /**
     * 银行分行
     */
    void requestGetBranchBankName(int page, String key, String bank_name, String province_name, String city_name, DataCallBack<BranchBrankListBean> callBack);

    /**
     * 识别身份证
     */
    void requestAliIdCard(String file_path, String side, DataCallBack<IdCardBean> callBack);

    /**
     * 识别营业执照
     */
    void requestAliLicenseInfo(String file_path, DataCallBack<LicenseInfoBean> callBack);

    /**
     * 识别银行卡
     */
    void requestAliBankCard(String file_path, DataCallBack<BankCardBean> callBack);

    /**
     * 修改结算人信息
     */
    void requestChangeStlInfo(String account_type, String bank_card_front_pic,String bank_card_back_pic,String yinsheng_change_pic, String holder, String holder_mobile, String holder_id_card_no,
                              String branch_province, String branch_city, String bank,String bank_type, String branch, String bank_card_no,
                              String unionpay, DataCallBack<BaseResponseBean> callBack);

    /**
     * 得到结算卡信息
     */
    void requestGetStlInfo(DataCallBack<SettlementInfoBean> callBack);

    /**
     * 商户详情
     */
    void requestStoreProfile(DataCallBack<StoreDeatilsBean> callBack);

    /**
     * 新增门店
     */
    void requestIncomeToQuickSub(String name, String mcc_code, String door_pic, DataCallBack<BaseResponseBean> callBack);

    /**
     * 门店列表
     */
    void requestStoreIndex(DataCallBack<StoreListBean> callBack);

    /**
     * 绑定门店
     */
    void requestChangeBindStore(String no, String bind_store_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 切换门店
     */
    void requestChangeStore(String store_no, DataCallBack<LoginBean> callBack);

    /**
     * 消息阅读
     */
    void requestSaveNewStatus(String message_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 扫码绑定码牌
     */
    void requestqrurlBindStore(String qrurl, DataCallBack<BaseResponseBean> callBack);

    /**
     * 版本更新
     */
    void requestClientVersion(DataCallBack<VersionBean> callBack);

    /**
     * 收益列表
     */
    void requestMerchantReceived(String start_date, String end_date, DataCallBack<StoreReceivedBean> callBack);

    /**
     * 获取充值配置
     */
    void requestMerchantRechargeConfig(DataCallBack<RechargeConfigBean> callBack);

    /**
     * 保存充值配置
     */
    void requestMerchantSaveRechargeConfig(List<RechargeConfigBean.DataBean> list, DataCallBack<BaseResponseBean> callBack);

    /**
     * 充值记录
     */
    void requestMerchantRechargeList(int page, DataCallBack<RechargeListBean> callBack);

    /**
     * 订单统计
     */
    void requestMerchantOrderFeeCount(DataCallBack<OrderFeeBean> callBack);

    /**
     * 订单列表
     */
    void requestMerchantOrderIndex(int page, String pay_status, String start_time, String end_time, String start_minute, String end_minute, DataCallBack<OrderListBean> callBack);

    /**
     * 门店列表
     */
    void requestMerchantStoreIndex(int page, DataCallBack<StoreListBean> callBack);

    /**
     * 会员列表
     */
    void requestMerchantMemberIndex(int page, String mobile, DataCallBack<MemberListBean> callBack);

    /**
     * 删除会员
     */
    void requestMerchantMemberDelete(String member_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 修改会员
     */
    void requestMerchantMemberUpdate(String member_no, String name, String mobile, String money, DataCallBack<BaseResponseBean> callBack);

    /**
     * 请求行业类型
     */
    void requestIndustryType(String mcc_type, DataCallBack<EBankIndustryListBean> callBack);

    /**
     * 添加采购单
     */
    void requestStorePurchaseAdd(String purchaser, String order_fee, List<PurchaseBean> goods_list, DataCallBack<BaseResponseBean> callBack);

    /**
     * 分页获取采购单
     */
    void requestStorePurchaseIndex(int page, String start_time, String end_time, DataCallBack<PurchaseListBean> callBack);

    /**
     * 删除采购单
     */
    void requestStorePurchaseDelete(String order_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 采购单详情
     */
    void requestStorePurchaseShow(String order_no, DataCallBack<PurchaseDetailsBean> callBack);

    /**
     * 获取省市区
     */
    void requestGetRegion(int code, int level, DataCallBack<BankDeposiAddressListBean> callBack);

    /**
     * 请求行业类型 开店宝
     */
    void requestKDBIndustryType(DataCallBack<KDBAllIndustryListBean> callBack);

    /**
     * 请求商户行业编号
     */
    void requestGetMcc(DataCallBack<MerchantIndustryNumberBean> callBack);

    /**
     * 保存门店资料
     */
    void requestStoreSaveProfile(String supplementary_information,String agent_id,String store_no, int quick_income, String merchant_type, String merchant_name, String user_wx, String contact_name, String legal_name, String contact_mobile,
                                 String legal_id_card_no, String legal_id_card_start, String legal_id_card_end, String province,
                                 String city, String area, String address, String lng, String lat, String license_no, String license_full_name,
                                 String license_address, String license_start, String license_end, String shop_type, String settle_to, String industry_id,
                                 String rate, String legal_flag, String unincorporated_id, String unincorporated_name, String account_type, String branch, String holder, String holder_id_card_no,
                                 String holder_mobile, String bank_card_no, String door_pic, String inside_pic, String cashier_desk_pic, String license_pic,
                                 String bank_card_front_pic, String legal_id_card_front_pic, String legal_id_card_back_pic, String legal_id_card_hand_pic, String non_leg_settle_auth_pic,
                                 String non_leg_idcard_front_pic, String non_leg_idcard_back_pic, String terminal_type, String collect_pic, String collect_pic_two, String merchant_register_pic,
                                 String settle_account_type, String reg_capital, String kdb_province_id, String kdb_city_id, String kdb_area_id, String kdb_bank_code, int crp_profession, int crp_gender, String legal_mobile, String email, String bank, String bank_card_back_pic, String unionpay, String bank_type, String branch_province, String branch_city, String open_acc_area, String bank_account_permit_pic, String channel_type, String mcc_cd, String qr_code_data,
                                 DataCallBack<BaseResponseBean> callBack);

    /**
     * 新增门店资料
     */
    void requestStoreIncomeProfile(String supplementary_information,String agent_id,String merchant_id, int quick_income, String merchant_type, String merchant_name, String user_wx, String contact_name, String legal_name, String contact_mobile,
                                   String password, String legal_id_card_no, String legal_id_card_start, String legal_id_card_end, String province,
                                   String city, String area, String address, String lng, String lat, String license_no, String license_full_name,
                                   String license_address, String license_start, String license_end, String shop_type, String settle_to, String industry_id,
                                   String rate, String legal_flag, String unincorporated_id, String unincorporated_name, String account_type, String branch, String holder, String holder_id_card_no,
                                   String holder_mobile, String bank_card_no, String door_pic, String inside_pic, String cashier_desk_pic, String license_pic,
                                   String bank_card_front_pic, String legal_id_card_front_pic, String legal_id_card_back_pic, String legal_id_card_hand_pic, String non_leg_settle_auth_pic,
                                   String non_leg_idcard_front_pic, String non_leg_idcard_back_pic, String terminal_type, String collect_pic, String collect_pic_two, String merchant_register_pic,
                                   String settle_account_type, String reg_capital, String kdb_province_id, String kdb_city_id, String kdb_area_id, String kdb_bank_code, int crp_profession, int crp_gender, String legal_mobile, String email, String bank, String bank_card_back_pic, String unionpay, String bank_type, String branch_province, String branch_city, String open_acc_area, String bank_account_permit_pic, String channel_type, String mcc_cd, String qr_code_data,
                                   DataCallBack<BaseResponseBean> callBack);


    /**
     * 行业
     */
    void requestIndustryIndex(DataCallBack<IndustryListBean> callBack);
    /**
     * 获取银行
     */
    void requestGetBank(String bank_name ,DataCallBack<BankListBean> callBack);
    /**
     *获取支行
     */
    void requesGetOpenBank(String bank_type,String city_code,DataCallBack<SubBranchListBean> callBack);
    /**
     *银盛智能版商户收款
     */
    void smartCollection(String order_fee, double latitude,  double longitude,String third_type,DataCallBack<IntelligentCashierBean> callBack);
    /**
     * 商户列表详情
     */
    void requestStoreShow(String id, DataCallBack<MerchantDetailsBean> callBack);
    /**
     * 万里服务商获取微信商户号
     */
    void requestGetWxMercId(String store_no,String  ys_merc_id, DataCallBack<GetWxMercIdBean> callBack);
    /**
     * 签约
     */
    void sendSignSms(String store_no, DataCallBack<SignContractBean> callBack);
}
